home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / PWAPCP02.ZIP / OCCPS45 / OCCPS.PPE (.txt) < prev    next >
Encoding:
PCBoard Programming Language Executable  |  1995-11-15  |  10.3 KB  |  430 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER002
  20.     Integer  INTEGER003
  21.     Integer  INTEGER004
  22.     Integer  INTEGER005
  23.     Integer  INTEGER006
  24.     Integer  INTEGER007
  25.     Money    MONEY001
  26.     String   STRING001
  27.     String   STRING002
  28.     String   STRING003
  29.     String   STRING004
  30.     String   STRING005
  31.     String   STRING006
  32.     String   STRING007
  33.     String   STRING008
  34.     String   STRING009
  35.     String   STRING010
  36.     String   STRING011
  37.     String   STRING012
  38.     String   STRING013
  39.     String   STRING014
  40.     String   STRING015
  41.     String   STRING016
  42.     String   STRING017
  43.     String   STRING018
  44.     String   STRING019
  45.     String   STRING020
  46.     String   STRING021
  47.     String   STRING022
  48.     String   STRING023
  49.     String   STRING024
  50.     String   STRING025
  51.     String   STRING026
  52.     String   STRING027
  53.     String   STRING028
  54.  
  55. ;------------------------------------------------------------------------------
  56.  
  57.     STRING001 = PPEPath() + "SECURE" + String(CurSec())
  58.     If (Exist(STRING001)) Then
  59.         DispFile PPEPath() + "SECURE", 2 + 1 + 4
  60.         Delay 91
  61.         End
  62.     Endif
  63.     :LABEL001
  64.     STRING002 = PPEPath() + "OCCPS.CFG"
  65.     STRING003 = ReadLine(STRING002, 1)
  66.     STRING004 = ReadLine(STRING002, 2)
  67.     STRING005 = ReadLine(STRING002, 3)
  68.     INTEGER002 = Asc(Mid(STRING003, 1, 1)) + Asc(Mid(STRING003, 2, 1)) + Asc(Mid(STRING003, 3, 1)) + Asc(Mid(STRING003, 4, 1)) + Asc(Mid(STRING003, 5, 1)) + Asc(Mid(STRING003, 6, 1)) + Asc(Mid(STRING003, 7, 1)) + Asc(Mid(STRING003, 8, 1)) + Asc(Mid(STRING003, 9, 1)) + Asc(Mid(STRING003, 10, 1))
  69.     INTEGER003 = Asc(Mid(STRING004, 1, 1)) + Asc(Mid(STRING004, 2, 1)) + Asc(Mid(STRING004, 3, 1)) + Asc(Mid(STRING004, 4, 1)) + Asc(Mid(STRING004, 5, 1)) + Asc(Mid(STRING004, 6, 1)) + Asc(Mid(STRING004, 7, 1)) + Asc(Mid(STRING004, 8, 1))
  70.     INTEGER004 = Asc(Mid(STRING003, 11, 1)) + Asc(Mid(STRING003, 12, 1)) + Asc(Mid(STRING003, 13, 1)) + Asc(Mid(STRING003, 14, 1)) + Asc(Mid(STRING003, 15, 1)) + Asc(Mid(STRING003, 16, 1)) + Asc(Mid(STRING003, 17, 1)) + Asc(Mid(STRING003, 18, 1)) + Asc(Mid(STRING003, 19, 1)) + Asc(Mid(STRING003, 20, 1))
  71.     STRING006 = String(INTEGER002) + String(INTEGER003) + String(INTEGER004)
  72.     Cls
  73.     PrintLn ""
  74.     PrintLn "      @X7F ┌───────────────────────────────────────────────────────────────@X70┐ @X0F"
  75.     PrintLn "      @X7F │ @X70           ONLINE CREDIT CARD PROCESSOR SYSTEM 4.5            @X70│ @X0F"
  76.     PrintLn "      @X7F │ @X70        @BOARDNAME:45C@      @POS:72@@X70│ @X0F"
  77.     PrintLn "      @X7F │                                                               @X70│ @X0F"
  78.     PrintLn "      @X7F │ @X71The use of an invalid credit card or unauthorized use of one  @X70│ @X0F"
  79.     PrintLn "      @X7F │ @X71for the purpose of accessing this board constitutes fraud and @X70│ @X0F"
  80.     PrintLn "      @X7F │ @X71will be reported to the proper law enforcement agencies.      @X70│ @X0F"
  81.     PrintLn "      @X7F └@X70───────────────────────────────────────────────────────────────┘ @X0F"
  82.     PrintLn ""
  83.     PrintLn "      @X4F ┌───────────────────────────────────────────────────────────────@X40┐ @X0F"
  84.     PrintLn "      @X4F │ @X40Registering with a credit card you will receive an @X4FIMMEDIATE  @X40│ @X0F"
  85.     PrintLn "      @X4F │ @X40access upgrade for use during this session.                   @X40│ @X0F"
  86.     PrintLn "      @X4F └@X40───────────────────────────────────────────────────────────────┘ @X0F"
  87.     PrintLn ""
  88.     PrintLn "           @X13 ┌─────────────────────────────────────────────────────@X10┐ @X0F"
  89.     PrintLn "           @X13 │ @X1EType @X1D1@X1E to Register using your credit card.          @X10│ @X0F"
  90.     PrintLn "           @X13 │ @X1EType @X1D2 @X1Eto Order Products with a credit card.        @X10│ @X0F"
  91.     PrintLn "           @X13 │ @X1EType @X1D3 @X1Eto Download REGISTER.ZIP and send by mail.   @X10│ @X0F"
  92.     PrintLn "           @X13 └@X10-────────────────────────────────────────────────────┘ @X0F"
  93.     PrintLn ""
  94.     STRING007 = ""
  95.     InputStr "@X0BWhich type registration would you prefer (@X0D1@X0B-@X0D3@X0B)@X07", STRING007, 10, 1, "123", 270
  96.     Select Case (STRING007)
  97.         Case "1"
  98.             Log "*** Entered OCCPS with Credit Card Option ***", 0
  99.             Gosub LABEL002
  100.         Case "2"
  101.             Log "*** Entered Product Ordering section of OCCPS ***", 0
  102.             Call PPEPath() + "PRODUCT.PPE"
  103.             Gosub LABEL001
  104.         Case Else
  105.             If (STRING007 == "3") Then
  106.                 Log "*** Downloaded registration form via OCCPS ***", 0
  107.                 KbdStuff "D;REGISTER.ZIP" + Chr(13)
  108.                 End
  109.             Endif
  110.             End
  111.     End Select
  112.     :LABEL002
  113.     Cls
  114.     DispFile PPEPath() + "CATLOG", 2 + 1 + 4
  115.     FAppend 1, PPEPath() + "CHARGE.LOG", 2, 3
  116.     INTEGER005 = ""
  117.     InputInt "@X0B(@X0D#@X0B-@X0D##@X0B) of Selection, (@X0DEnter@X0B) TO Quit @X07", INTEGER005, 10
  118.     PrintLn ""
  119.     If (INTEGER005 == "") Goto LABEL003
  120.     INTEGER006 = Left(ReadLine(STRING002, INTEGER005 + 3), 3)
  121.     INTEGER007 = Mid(ReadLine(STRING002, INTEGER005 + 3), 5, 3)
  122.     MONEY001 = Right(ReadLine(STRING002, INTEGER005 + 3), 7)
  123.     If (INTEGER006 == 0) Then
  124.         Gosub LABEL002
  125.     Endif
  126.     Log "*** Placed order for Selection No " + String(INTEGER005) + " via OCCPS ***", 0
  127.     FPutLn 1, "********************** OCCPS v4.5 (Registered) *********************"
  128.     FPutLn 1, "ORDERED:  Selection No " + String(INTEGER005) + "     Amount: " + String(MONEY001)
  129.     FPutLn 1, "Level " + String(INTEGER006) + " Subscription"
  130.     FPutLn 1, " "
  131.     Goto LABEL004
  132.     :LABEL003
  133.     Cls
  134.     FClose 1
  135.     Gosub LABEL001
  136.     :LABEL004
  137.     InputCC "Enter credit card number", STRING008, 15
  138.     If (STRING008 == "") Then
  139.         Cls
  140.         FClose 1
  141.         End
  142.     Endif
  143.     STRING024 = PPEPath() + "BADCARD.DAT"
  144.     FOpen 3, STRING024, 0, 2
  145.     :LABEL005
  146.     If (Ferr(3)) Goto LABEL006
  147.     FGet 3, STRING025
  148.     If (STRING008 == STRING025) Then
  149.         Log "Attempted to use a credit card from the BADCARD.DAT file", 0
  150.         PrintLn ""
  151.         PrintLn ""
  152.         PrintLn "        @X8FYou have attempted to use a credit card previously identified"
  153.         PrintLn "                            @X8Fas @X8CUNCOLLECTABLE"
  154.         PrintLn ""
  155.         Delay 91
  156.         FClose 3
  157.         STRING008 = ""
  158.         Goto LABEL002
  159.     Endif
  160.     Goto LABEL005
  161.     :LABEL006
  162.     If (ValCC(STRING008) && (CCType(STRING008) <> "UNKNOWN")) Then
  163.         STRING026 = PPEPath() + "CCARDS.CFG"
  164.         FOpen 2, STRING026, 0, 2
  165.         :LABEL007
  166.         If (Ferr(2)) Goto LABEL008
  167.         FGet 2, STRING027
  168.         If (RTrim(Left(CCType(STRING008), 20), " ") == STRING027) Then
  169.             FClose 2
  170.             Gosub LABEL009
  171.         Endif
  172.         Goto LABEL007
  173.         :LABEL008
  174.         FClose 2
  175.         PrintLn ""
  176.         PrintLn ""
  177.         PrintLn "@X0ECurrently we are not able to accept @X0B", Left(CCType(STRING008), 20)
  178.         PrintLn "@X0EPlease use a different card or register by mail"
  179.         PrintLn ""
  180.         Log "Attempted to use a " + Left(CCType(STRING008), 20) + " Credit Card", 0
  181.         Wait
  182.         STRING008 = ""
  183.         Goto LABEL002
  184.     Endif
  185.     PrintLn ""
  186.     PrintLn ""
  187.     PrintLn "@X0EThis is an @X0CINVALID @X0ECredit Card number!"
  188.     PrintLn ""
  189.     Delay 91
  190.     Log "Attempted to use an INVALID Credit Card number", 0
  191.     STRING008 = ""
  192.     Goto LABEL002
  193.     :LABEL009
  194.     PrintLn ""
  195.     PrintLn "@X0EThis card was issued by:  @X0B", Left(CCType(STRING008), 20)
  196.     PrintLn "@X0E  The account number is:  @X0B", FmtCC(STRING008)
  197.     FPutLn 1, "                User: " + U_Name()
  198.     FPutLn 1, "                Date: " + String(Date()) + " (" + String(Time()) + ")"
  199.     FPutLn 1, "           Card Type: " + Left(CCType(STRING008), 20)
  200.     FPutLn 1, "         Card Number: " + FmtCC(STRING008)
  201.     :LABEL010
  202.     STRING010 = ""
  203.     PrintLn ""
  204.     PrintLn "@X0EEnter the Card Expiration Date (MM/YY as shown on card using leading zeros)"
  205.     InputStr "", STRING010, 11, 5, "0123456789" + "/", 64
  206.     If (STRING010 == "99/99") Then
  207.         End
  208.     Endif
  209.     STRING022 = Mid(STRING010, 4, 2)
  210.     STRING021 = Mid(STRING010, 1, 2)
  211.     STRING023 = STRING022 + "/" + STRING021
  212.     STRING019 = String(Year(Date()))
  213.     If (Month(Date()) < 10) Then
  214.         STRING018 = "0" + String(Month(Date()))
  215.     Else
  216.         STRING018 = String(Month(Date()))
  217.     Endif
  218.     STRING020 = Right(STRING019, 2) + "/" + STRING018
  219.     If (STRING010 == "") Then
  220.         PrintLn "@X8CEntry Required for Processing"
  221.         Gosub LABEL010
  222.     ElseIf (STRING023 < STRING020) Then
  223.         PrintLn "@X8CYou have entered an Expired Card!  Are you using leading zeros?"
  224.         Log "Attempted to use an EXPIRED Credit Card dated: " + STRING010, 0
  225.         Gosub LABEL010
  226.     Endif
  227.     FPutLn 1, "     Expiration Date: " + STRING010
  228.     FPutLn 1, " "
  229.     :LABEL011
  230.     STRING009 = ""
  231.     PrintLn ""
  232.     PrintLn "@X0EEnter the Cardholder's Name (as shown on card)"
  233.     InputStr "", STRING009, 11, 25, Mask_AlNum() + " " + ".", 64
  234.     If (STRING009 == "") Then
  235.         PrintLn "@X8CEntry Required for Processing"
  236.         Gosub LABEL011
  237.     Endif
  238.     FPutLn 1, "   Cardholder's Name: " + STRING009
  239.     :LABEL012
  240.     STRING011 = ""
  241.     PrintLn ""
  242.     PrintLn "@X0ECardholder's Street Address (Line 1)"
  243.     InputStr "", STRING011, 11, 25, Mask_AlNum() + " ", 64
  244.     If (STRING011 == "") Then
  245.         PrintLn "@X8CEntry Required for Processing"
  246.         Gosub LABEL012
  247.     Endif
  248.     FPutLn 1, "Cardholder's Address: " + STRING011
  249.     STRING012 = ""
  250.     PrintLn ""
  251.     PrintLn "@X0ECardholder's Suite or Apartment Number"
  252.     InputStr "", STRING012, 11, 25, Mask_AlNum() + " ", 64
  253.     If (STRING012 <> "") Then
  254.         FPutLn 1, "                    : " + STRING012
  255.     Endif
  256.     :LABEL013
  257.     STRING013 = ""
  258.     PrintLn ""
  259.     PrintLn "@X0ECardholder's City (without state)"
  260.     InputStr "", STRING013, 11, 25, Mask_AlNum() + " ", 64
  261.     If (STRING013 == "") Then
  262.         PrintLn "@X8CEntry Required for Processing"
  263.         Gosub LABEL013
  264.     Endif
  265.     :LABEL014
  266.     STRING014 = ""
  267.     PrintLn ""
  268.     PrintLn "@X0ECardholder's State"
  269.     InputStr "", STRING014, 11, 4, Mask_Alpha(), 64
  270.     If (STRING014 == "") Then
  271.         PrintLn "@X8CEntry Required for Processing"
  272.         Gosub LABEL014
  273.     Endif
  274.     :LABEL015
  275.     STRING015 = ""
  276.     PrintLn ""
  277.     PrintLn "@X0ECardholder's Zip Code"
  278.     InputStr "", STRING015, 11, 10, Mask_AlNum() + "-", 64
  279.     If (STRING015 == "") Then
  280.         PrintLn "@X8CEntry Required for Processing"
  281.         Gosub LABEL015
  282.     Endif
  283.     FPutLn 1, "                    : " + STRING013 + ", " + STRING014 + "  " + STRING015
  284.     :LABEL016
  285.     STRING016 = ""
  286.     PrintLn ""
  287.     PrintLn "@X0ECardholder's Home Phone Number"
  288.     InputStr "", STRING016, 11, 12, Mask_Num() + "-", 64
  289.     If (STRING016 == "") Then
  290.         PrintLn "@X8CEntry Required for Processing"
  291.         Gosub LABEL016
  292.     Endif
  293.     FPutLn 1, "   Home Phone Number: " + STRING016
  294.     :LABEL017
  295.     STRING017 = ""
  296.     PrintLn ""
  297.     PrintLn "@X0ECardholder's Work Phone Number"
  298.     InputStr "", STRING017, 11, 12, Mask_Num() + "-", 64
  299.     If (STRING017 == "") Then
  300.         PrintLn "@X8CEntry Required for Processing"
  301.         Gosub LABEL017
  302.     Endif
  303.     FPutLn 1, "   Work Phone Number: " + STRING017
  304.     FPutLn 1, " "
  305.     FPutLn 1, "Credit Card Processing Completed Normally"
  306.     FClose 1
  307.     PrintLn ""
  308.     GetUser
  309.     If (CurSec() < INTEGER006) Then
  310.         PrintLn "Raising your security access to level " + String(INTEGER006) + "..."
  311.         U_Sec = INTEGER006
  312.         U_ExpDate = Date() + INTEGER007
  313.         PrintLn ""
  314.         PrintLn "Automatic upgrade Complete!"
  315.     ElseIf (CurSec() == INTEGER006) Then
  316.         PrintLn "Extending your level " + String(INTEGER006) + " security access..."
  317.         U_ExpDate = U_ExpDate + INTEGER007
  318.         PrintLn ""
  319.         PrintLn "Automatic upgrade Complete!"
  320.     Else
  321.         PrintLn "Level requested is lower than existing level"
  322.         PrintLn "No change in level made"
  323.         Message 0, "SYSOP", "OCCPS", "Security Level Conflict", "R", 0, 0, 0, PPEPath() + "CONFLICT.TXT"
  324.     Endif
  325.     PutUser
  326.     PrintLn ""
  327.     PrintLn "Your subscription will expire on ", U_ExpDate
  328.     PrintLn ""
  329.     PrintLn "@X0FThank you @X0D@USER@ @X0Ffor your order"
  330.     Log "Completed Credit Card Processing!", 0
  331.     Message 0, "SYSOP", "OCCPS", "Credit Card Registration", "R", 0, 0, 0, PPEPath() + "NOTIFY.TXT"
  332.     Message 0, U_Name(), "SYSOP", "BBS Subscription", "R", 0, 0, 0, PPEPath() + "USERMSG.TXT"
  333.     STRING028 = PPEPath() + "INFORM"
  334.     If (Exist(STRING028)) Then
  335.         DispFile PPEPath() + "INFORM", 2 + 1 + 4
  336.         Delay 91
  337.     Endif
  338.     End
  339.  
  340. ;------------------------------------------------------------------------------
  341. ;
  342. ; Usage report (before postprocessing)
  343. ;
  344. ; ■ Statements used :
  345. ;
  346. ;    6       End
  347. ;    4       Cls
  348. ;    1       Wait
  349. ;    41      Goto 
  350. ;    39      Let 
  351. ;    79      PrintLn 
  352. ;    27      If 
  353. ;    3       DispFile 
  354. ;    2       FOpen 
  355. ;    1       FAppend 
  356. ;    6       FClose 
  357. ;    2       FGet 
  358. ;    18      FPutLn 
  359. ;    1       GetUser
  360. ;    1       PutUser
  361. ;    9       Log 
  362. ;    10      InputStr 
  363. ;    1       InputInt 
  364. ;    1       InputCC 
  365. ;    14      Gosub 
  366. ;    4       Delay 
  367. ;    1       KbdStuff 
  368. ;    1       Call 
  369. ;    3       Message 
  370. ;
  371. ;
  372. ; ■ Functions used :
  373. ;
  374. ;    99      +
  375. ;    18      ==
  376. ;    2       <>
  377. ;    3       <
  378. ;    27      !
  379. ;    1       &&
  380. ;    31      Mid()
  381. ;    6       Left()
  382. ;    2       Right()
  383. ;    2       Ferr()
  384. ;    1       Chr()
  385. ;    28      Asc()
  386. ;    1       RTrim()
  387. ;    6       Date()
  388. ;    1       Time()
  389. ;    2       U_Name()
  390. ;    1       Year()
  391. ;    3       Month()
  392. ;    15      String()
  393. ;    1       Mask_Alpha()
  394. ;    2       Mask_Num()
  395. ;    5       Mask_AlNum()
  396. ;    13      PPEPath()
  397. ;    6       ReadLine()
  398. ;    3       CurSec()
  399. ;    2       Exist()
  400. ;    1       ValCC()
  401. ;    2       FmtCC()
  402. ;    6       CCType()
  403. ;
  404. ;------------------------------------------------------------------------------
  405. ;
  406. ; Analysis flags : WC
  407. ;
  408. ; W - Write user ■ 5
  409. ;     Program writes a user record. Although this may be normal for a
  410. ;     User Editor, it may also be a way to modify an account level.
  411. ;     ■ Search for : PUTUSER
  412. ;
  413. ; C - Call child PPE ■ 3
  414. ;     This is usually normal, but may be a tricky way to launch some
  415. ;     sysop-only commands.
  416. ;     ■ Search for : CALL
  417. ;
  418. ;------------------------------------------------------------------------------
  419. ;
  420. ; Postprocessing report
  421. ;
  422. ;    0       For/Next
  423. ;    0       While/EndWhile
  424. ;    22      If/Then or If/Then/Else
  425. ;    1       Select Case
  426. ;
  427. ;------------------------------------------------------------------------------
  428. ;                 AEGiS Corp - Break the routines, code against the machines!
  429. ;------------------------------------------------------------------------------
  430.